perm filename STEP.18[AID,LSP]2 blob
sn#637555 filedate 1981-05-27 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00005 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 SINGLE STEPPING PACKAGE INCLUDING STEP & BREAKIF.
C00008 00003 (MACRODEF %DEFAULT (ARGS)
C00014 00004 (DEFUN %MACRO-REPLACE (FORM)
C00024 00005 ASKS WHETHER A DEMON SHOULD BE REMOVED FROM THE LIST.
C00026 ENDMK
C⊗;
;;; SINGLE STEPPING PACKAGE INCLUDING STEP & BREAKIF.
;;;
;;; (STEP) ENABLE ONLY
;;; (STEP T) BEGIN SINGLE STEPPING IMMEDIATELY
;;; (STEP NIL) DISABLE SINGLE STEPPER (I.E. EVALHOOK <= NIL)
;;; (STEP <CLAUSE1> <CLAUSE2> ...)
;;; CLAUSES:
;;; (WHEREIN FN1 FN2 ...) SINGLE STEP WITHIN EVALUATION OF FUNCTIONS FN1, FN2, ETC.
;;; (AFTER FN1 FN2 ...) SINGLE STEP AFTER BEGINNING EVALUATION OF FN1, FN2, ETC.
;;; (BREAKIF P1 P2 ...) BREAK IF ANY OF PREDICATES P1, P2, ETC. IS EVER TRUE.
;;; (STEP *) USE PREVIOUS WHEREIN AFTER AND BREAKIF CLAUSES
;;;
;;; N.B.: A ↑G TURNS THE SINGLE-STEPPER OFF.
;;;
;;; [IFN FOO ...]
;;; [IFN (FOO BAR QUUX ....) ...]
;;; [IFN ((PRED FOO) ...) ..] such as
;;; [IFN ((NOT SAIL) DEC10) ...]
(DECLARE (EVAL (READ)))
(SETSYNTAX '/[ 'SPLICING ;CONDITIONAL ASSEMBLY HACK
(FUNCTION (LAMBDA NIL ;LOOK SORT OF LIKE MIDAS IF'S
((LAMBDA (IF FLAG R)
(COND ((ATOM FLAG)(SETQ FLAG (NCONS FLAG))))
(COND ((EQ IF 'IFE))
((EQ IF 'IFN) (SETQ IF NIL))
((EQ IF 'IFP) (SETQ IF (EVAL FLAG) FLAG NIL))
((BREAK LOSING-IF T)))
(OR (APPLY 'AND (MAPCAR (FUNCTION (LAMBDA (Q)
(COND ((ATOM Q)
(COND ((MEMQ Q R) T)))
(T (COND ((APPLY (CAR Q)
(NCONS (MEMQ (CADR Q) R))) T))))))
FLAG))
(SETQ IF (NOT IF)))
(AND IF (DO ((Z (TYIPEEK) (TYIPEEK)) (N 1))
((ZEROP N))
(COND ((= Z '133) (SETQ N (1+ N)))
((= Z '135) (SETQ N (1- N))))(TYI))))
(READ) (READ)(STATUS FEATURES))
NIL)))
(DECLARE (EVAL (READ)))
(SETSYNTAX '/] 'SPLICING (FUNCTION (LAMBDA NIL NIL))) ;RIGHT BRACE
(DECLARE (*LEXPR P Q)
(*EXPR EM:REAL-TERPRI)
(*FEXPR STEP BREAKIF)
(FIXNUM INT-STEP-PL INT-STEP-PD STEP-PL STEP-PD STEPLEVEL)
(SPECIAL STEPLEVEL ENABLE-ONLY? GLOBALSTEP? LOCALSTEP? FLUSHSTEP?
STEPPING? DEMONS? STEPDEMONS STEPWHEREIN CHECKING? %CE
MACROSTEP? %value -em:ecalledp- -em:mode-
STEPAFTER STEP-PL STEP-PD))
(cond ((boundp '-em:ecalledp-))
(t (setq -em:ecalledp- ())))
(OR (GETL 'P '(EXPR LSUBR))
[IFN SAIL (AND (DEFPROP Q (P FAS DSK (MAC LSP)) AUTOLOAD)
(DEFPROP P (P FAS DSK (MAC LSP)) AUTOLOAD))]
[IFN ((NOT SAIL) DEC10) (AND (DEFPROP Q (P FAS SYS (/1 /2)) AUTOLOAD)
(DEFPROP P (P FAS SYS (/1 /2)) AUTOLOAD))])
;;; PRINLEVEL AND PRINDEPTH FOR STEP. THESE CAN BE RANDOMLY SET.
(SETQ STEP-PL 4. STEP-PD 3.)
;;; These macro definitions require the file MACROD.>[AID,RPG] which
;;; is known to SAIL Maclisp.
[IFN SAIL
(MACRODEF TERMINAL-READCH ()
((LAMBDA(↑Q ↑R ↑W)
(PROG2 () (TYI) (AND -EM:ECALLEDP- (EQ -EM:MODE- 'LTYPE)
(EM:REAL-TERPRI)))) NIL NIL NIL))]
[IFN ((NOT SAIL) DEC10)
(MACRODEF TERMINAL-READCH ()
((LAMBDA(↑Q ↑R ↑W X)
(SSTATUS LINMODE NIL)
(PROG2 NIL (READCH)(SSTATUS LINMODE X))) NIL NIL NIL (STATUS LINMODE)))]
(MACRODEF TERMINAL-PRINC (X)
((LAMBDA(↑R ↑W PRINLENGTH PRINLEVEL)
(PRINC X)) NIL NIL STEP-PL STEP-PD))
(MACRODEF TERMINAL-NEWLINE ()
((LAMBDA (↑R ↑W)
(TERPRI)) NIL NIL))
(MACRODEF TERMINAL-TYO (X)
((LAMBDA (↑R ↑W) (TYO X)) NIL NIL))
(MACRODEF PROG1 X (PROG2 NIL . X))
(@≠β
%∨ _@C →β+→(Qβ%∂LR~)αB∞.h@αBD→hBα∧~(u_h!∀ααα∧¬αDd→X$$
¬λ4
∀z5⊂hPα(λ∧∧λλλ¬λ3Qβ!↓(λλ∧∧α*∪Izλ
⊃*∀⊂p4Hzh∃
%⊃"B"% Suλ¬λαhP!Pi#iP U∀TFB∧P⊂⊂λ⊂⊂⊂⊂
''j
¬Q CARGS L¬∪_R$~∀$JB>I↓D
R>5∧~εJ≡~H4(⊃∃αDd→X$$
¬λ4
(z2Hh!⊃∩ααλ→d hαB"$∧λ
∪Izα⊂∀"TP!``T πS 'WHEREIJ))
λ ↓ (FOT (EQ↓∞εε∀:M↓≡2R⊗IJH4(⊃∀ααα iu"αλZ∩∧≤_~$=~∧x%∀→9∀2J∃∃⊂hPα"(¬λp4@⊂⊂βARGS)))))
∩@@@@@!ββ$A¬%≡MJI$4(JBN⊗RλαεJ≡~↓":∞|rM↓α≤z:M↓=:"εJ,J0∩∧~(u~J∃∀αJα∧¬∩Hh!Q"D⊃1U)d∀q⊃*¬2⊂4HD⊃Q6
H
⊂*(tj#!$
1λXP53
D⊂4Qj5!"H¬
q5∀$λr⊃0i93Qod
#"D¬ )4jH4)$T⊂4Qj5*#"AQJ⊃⊃(j3H⊃%Zu⊃4∧λQ0(∀⊂∀ i⊃iTFEλ∀⊂& Sa" @
i#iJFA⊂⊂λ∀∩b"Q jf*λ i#iJFA⊂⊂λ∀∩RiU"h_RIP i#TTTP∀∪!cg)H∀!``T⊂ i#TTTTFB⊂∀$'SβKER(CARARGS)))¬
λ(DEFUJ @+9') ↓
β1↓H@Qβ%≥&R
∀Qπ∂≥⊂@Qβ%≥&@@K⊃
β+1(Aβ%≥&RR~(@@@@@@Q(Q')DAβ%∂L@Q≥π=→&@Q
≠⊂~Mα:↑"⊗∀*&)αα:D-¬yλU∀,→a∩JJ∃⊃PRα
Ye≥$Zε∩∧
(z2JHQ!PBDHXe,rλ¬3J:⊃4$¬⊂4Qj5#"H¬ 04⊂d¬⊃U3H~⊂3sD¬∪⊂3((⊂(
∃(
∀hZ∀(∀jH4⊃rλZQ23D¬⊃⊃3
∀∀(∀jH4⊃rλZQ23E∃**#!$λλλ∧∧λ
⊂hJH
⊂*:t( jy⊃0Q)→β⊂ i⊃iPTTCE⊂∀&Ph!P∀⊃*g!j∩dπF (LAMBDA A) (SETQ S@)∃!β
∃$@Q ∃→"AαααNR⊗∧
~R⊗∩I%%$hQ↓↓↓α↓↓↓"≤"I↓"
~NE↓=:"εJ,J0∩∧~(u~J∃∃⊂hPQ%∧$,h¬3D
u⊃4∧λQ0(∀⊂∀ i⊃iPPεB⊂∀∩b⊃c jf∃⊂ i#TTBE⊂
)bb(H!d"aRdg#←H'$f∀CE⊂∀αIij"hRRP T πS))
~∀! β
8@BK≥"⊗AE*)↓"ε∀:M$4R↓↓↓↓α↓↓"N-"Eα∩,j>*Mzα2&1h!l%α↓↓↓α,rε
2*j6:2Kyα:&b4(¬α↓↓↓α<b0≤∀→J5$-πt∧dLD↓PPJ∧∧αα∧X_5∀⎇8HUβZ i∀`h!∀ααα∧λde-9
5$-πt∧dLAQ Jα∧∧α∧dx8∀e≥HZβz∧i→Bh!∀ααα∧
5$- HU4Dεαph!∀ααα∧¬%∃≤Z@¬"HQ$ααα∧∧ααE8:D
%Z4¬-,yI∀d]5⊃PRα∧∧ααα¬
¬∀|v!PPJ
8U%
λ:D-¬ →d;z
E⊂hP∃λ4|TD¬αD-∀¬∧≤
$λ∃∀≥5∀α:R⊃Q Jα∧∧ααα¬ DM≥D¬∧≤|j4α<hHU∩¬:HU∧hHU∩HQ!⊂Jα∧∧ααD9ye~αzy∧-∀Y→b¬≥HZ¬<DZ(TLr⊃Q HJ∧∧αααλ9tu~∧x%∀,→9∀2¬:HU∧$YYte~∃∃⊂hP∀∧ααα∧¬¬"∧~(u~J⊃Q JD9yd"α¬ e,dDλ∃∀=5∀βZE8ZE
∧Yh∀∀dUYtde↔t¬"HQ!∩αα∧∧ααα∞<W'
Zf∞f
⎇vJα⎇
v}↑↑%∩Hh!∀ααα∧∧αBDZ∀αD≤~$∧
∀z5∩α:%⊃PPJ∧∧ααα∧¬¬≤-J∀∧$,Yye≠z
:D-∧HYT|U4λU4I t|Z∧y∧||8Z"JHQ!∩αα∧∧ααBλZ∩αD8~"∧
(z2JαzE⊂hP∀∧ααα∧∧αE≤ZJ∩∧<Ix$e8¬⊃*πh∃λλZP3∩ yrh i srq*%*#"A∀λλλ∧∧
⊃*~03λλ~Qth∧u∪R3¬∃#"B$∧λλλ∧∧
∀q*J(
TJ85λ∪I→λ⊃5H→∩∪si4∪R3∧
u⊃4
3Qod R3
%⊃"B(∧∧λλλ¬
λ
∀hZ∀(∀jH4⊃⊃)YsTc!!"(λ∧∧λλλ¬
q5∀$λ⊃33iJoh
λ8∀H
λ~tspd∧pTQ(→r1C!!"""!⊃(⊂4Hzj**!QB"(∧∧λλλ∧
u⊃4λ_U⊃4AQ@"(∧∧λλλ∧¬⊂q∀D¬⊂4tixh p(j⊃4Hλ~Qtj%⊃"B"$∧λλλ∧∧∀u⊃*
r⊃4HY3C"A⊃(λλ∧∧λλ
λ8∀H
λ~tspd∧ur⊃*(23Hλ~Qtj%⊃"B"$∧λλλ∧∧⊃5P)I⊃sraQ@"(∧∧λλλ∧∧r∪si84J*%∀λλ
%⊃"B"!⊃(λλ∧↓"Nng∀∃∩⊃$λ5P3λjP31$λU3PjI3sCAQHλλ∧∧λλλ∧∧λλλ∧∧λλλ∧∧λλλ∧∧λλλ∧∧λλλ∧∧λλλ∧∧λλλ∧∧λλλ∧∧λλλ∧∧λλλ∧∧λλλ∧∧λλλ∧∧λλβ!%⊃⊃1JYH∩∪i@ebi⊂
!'i&JPεE⊂
!gg"λ∀#&*Td)j"T≥P∀9Yz8P∩]0v:rH∀"k S$'geH#'i&H∪d'gRbi∀TJFE⊂⊂
*εE⊂λ⊂∀∀&⊂fa" H∀''j`j'fT∨PFEλ⊂⊂⊂⊂λ⊂∀!gS ∧ ;(enable-only? (evalhook form nil))
((AND DEMONS? (RUNSTEPDEMONS)))
(GLOBALSTEP? (HOOK1 FORM))
((AND NOT-ATOMP? (MEMQ (CAR FORM) STEPAFTER))
(SETQ GLOBALSTEP? T)
(HOOK1 FORM )
(LOCALSTEP? (HOOK1 FORM))
((AND NOT-ATOMP? (MEMQ (CAR FORM) STEPWHEREIN))
((LAMBDA (LOCALSTEP?) (PROG1 (HOOK1 FORM)(TERMINAL-NEWDINE))) T))
(((lambda (q)
(cond (q
((LAMBDA (LOCALSTEP?)
(hookprint '|<in |)
(terminal-princ q)
(perminal-princ '|>|)
(PROG1 (HOOK1 FORM)(TERMINAL-NE@/1∪∃
R$RA(R$RR~∀$@@@@@@QC9HA]←P[Ci←5`}AG!KGWS9N}@Q]QKeK%\RRR$~∀α@@@@P!gKibKmCYUJ@QYβ→⊃∨=⊗A
∨I~@O⊃=∨↔$$RRRRQ≥∨(Qβ)∨4A
∨%4RRRR$R@@@4∀~∀Q⊃KMk\↓oQKe∃S\@P$~∀@P)GCiG @O∨+P@~∧∩Qae←≥\~∀∩@PQY¬[EIBQbR~(∩∩@@QG←]⊂@PQ[∃[bAb↓giKa]QKeK%\R~∀$∩∩@@ UiQe=n@O←UhAbR$RR~∀$@@@Q⊃↑@PQ$@QEC-YSgh$QGId↓RRRR4∀∩@@@@@@ QCMHQ]←hQgsg@@QGC¬dARR$R~∀∩$@@@@Q]←hQ[K[D@QGC¬dARRNQoQ∃eKS\↓Q←←W∃dAQ←=VbRR$RQGC¬dARR$RR~∀$@A]S0RRR~(~∀vvlA!%∪9)&A∨U(A)⊃∀A
∨%4\~∀vlvAβ≥A+(A
I∨∩A)Q2A Q%≠∪9&A/!)$↓∨$A≥=(A)≡↓π∨≥)%≥+
AM∪≥∂→∀A')A!∪≥∞8~∀fVl∪∪≥!U(@z∩Y&@Aπ=≥)∪≥U
~∀vlr∩∩-D@A#+%(A'∪9∂→
AM)!!%≥≥αbR>≡-""εHhQmmlHHZa↓∧">9≡"αN&:<b∃αN$*Aα↑M""&9¬""&M∧26J5αB∞ε9∧"=↓α≥"⊗Aα"Iα2ε$*I$4SYml$J↓↓↓α4zIαV≤)α↑",qα
J,
.B>LrRMα
∩∃α⊗Eα⊗∞R,!84)[Yd$$5Q↓α∩|q≡Qα≤J:≡2*αNR⊗αα↑&RDJ9αRDJMα~⎇∩5↓"≤
::>"α∩=↓E~R⊗A¬!%α2
"⊗I$hQmmlHHZ
↓∧~>*RLrV∃1∧∩VQα\*⊗Aα$B∃α∞-∩J⊗:"α∩⊗6|rM1α-"
!α4
2&⊂hQmmlHHZY↓¬~ε6∃∧
MZBα
VQ¬~⊗RMαRJN⊗"αR=αtJ04)[Yd$$4⊃↓α
∀*ε.M∧
Qα∞-∩J⊗:"αB>NM"&>8hQmmlHHZA↓¬∩∃&B∀J:RM¬""∃α4zJ44SYml4P1"∩,2V9↓,jε∞JzjJ⊗Bd
∞∃↓D2>J5J4)↓α↓↓↓↓αA"2εl∩∩¬↓D2V9%h($%D~>*⊃αB~V8hP$%↓α↓↓↓↓αA"2εl∩∩¬↓EA%4PH$$%D~>:⊃αBa↓"≥*
J∞b1α:Laαaα4zJ5%Hh($$HI↓↓↓α↓↓"QαBBJ>=1↓"∞"Iα~,q$4(HH$$$JB:∞>u→α~>∀i$4(HH$$$JB⊗Zεb↓"∞>u→↓≡B∀z≡84PH$$$HH%↓↓α↓"∞∩%⊃α~VrI%%%JI$4(HH%"≡-!α~Vr↓≡NV∃⊃%%$hP$%↓α↓↓↓↓E!↓"N-"EαN$*B2⊗4*1↓!
iαNR-α2⊗Z,a%$4PH$%α4zJ5%JH4(%D:⊗Q↓D~εIα4zJ5%α:6ε∞∀y%%$hP4)"$*~V9∧B>>
↓"~>∀i%4R↓↓↓↓α↓↓""|z.BJLrQ↓"≤*RE↓,~∃α~⎇∩5%$hQ↓↓↓α↓↓↓"≤z:↓↓BB>I↓D
R>5∧2>J5J↓"6⊗m ↓"∞
⊃α~>∀i%↓≥E~R>J(h($$HH$%αα~T⎇$QQ HH⊃⊃⊂J∧jYd≥$→y`hPα""!⊃"(⊂iY313JA"B"!⊃""(λH0s⊂*(***!Q@(λ∧∧λλ
H4S2)H34
)3Ph∧␈λ∂(∂E#"B$∧λλλ∧¬
∪⊂)XQ⊂ ¬λStS%∀
⊃⊃*)23P)E4∀R)hh⊃Sj)*(⊃IzS*(¬∞y=≤$∧=X;∞\(
⊃*h3∩∪iyh⊃Sj)(∪R)E***!QB(λ∧∧λ
X34(¬λp4HλitS"$∧j∀uλZλ⊂THX2r1E∃#"B$∧λλλ∧¬⊂ssHD
∃
(0q1πt
⊂p*$⊃StIU*(β!!"(λ∧∧λ
H30Qλ∀
∪TDUj(¬
⊃0S)→P3)h5s∩)h*#"A⊃""(∧∧
∃⊃*)23P)E4∀R)hh ␈¬eK];NNX8z-lh∨
!QB""!∀λλ
H4S2)H34
)3Ph¬λp4HλitS"%⊃"B"!⊃(λλ¬
⊃4S)→P3*
R3Pd∧⎇KEo
#"A⊃ "(∧∧
∃⊃*)23P)E3Q5iI3Q*%⊃"B"$∧λλλ∧∧∪R3∧ R3
!Q@"(∧∧λλ
λ~∀∪⊗$∧u3U
(0q(¬ PssJ4
⊂p*$⊃StIU***%⊃"B(∧∧λλλ¬∞y=≤$∧=X;∞\(
⊃*H3∩∪iYh⊃Sj)(∪R)E**#!!(λλ∧∧
∀hZ∀(∀jH4∪⊃*h3λ
ε∃h∀uλZ∪⊃5HYλ∧TFB∧P⊂⊂λ⊂⊂∀)Qj(P#∪i&P∀
& fa⊃ P∀&∪a`f)U"h∨P⊃f'a S)j"h∂P∃))Qj⊂FEαDP⊂∧H⊂⊂∀∀∪ fa"⊂P∀ ∩ESULT)
↓ (COND (MACROSTEP?
(SETQ MACROSTEP? NIL
↓ FORM (%MACRO-REPDACE FORM))
↓ (HGOK1 FORM))
↓ (T (setq %valu`
@Q∃(
ε2Dz6-α4zJ5α∀*NV2"I%%%αH4(⊃⊃∩αα¬λ4lUI→e,*Z:D-¬ →d;zλiu∀j∃∃⊂hPα""$∧⊃∪ph→∀p
"T≤π GLLπ¬β→M) }U%'PRR
∀$@@@@@Q'Q"A'$*B2⊗4*1↓!λiαNR-α2⊗Z,a%$∀PI↓↓↓α↓↓"α|z.BJLrQα~⎇∩5%%JI4!Q#K[4
$,J4∧D~(∀≥⊃4@⊂⊃)'f@ TTY AL@λA¬∃)+%≥LA≥⊃PA⊃>|Y6~Vt~R&>ph $%λD,≤β⊂4HTλ∧ ∪PEC@∪β0@@∃⊗α:D-αX¬∩
)u1r∧T( )*:α#h⊗Th"h∩IP∩RiU h⊗gUα@$J∀@@∃⊗α:D-αY→e$zTQP@Hα(λ∧T4Q+*
R3U¬Z∀Q5
K))(∧T4Q+*
R3U∧T( ))_pπ'i⊃RRTTCE(IFL∧A'β%_∩(hQ`~↓h!P@%→→0∪≥w⊂∩RX92puIRP6pXy0∂ (x) (list
λ ↓ 'quote
∩∩$@@@@!→∪'λα↓P∪2dπ∪Br∧@
&¬Hλ
82.¬
∩@hjl\α↓Qaap∧β@6LMKDε,∧Z↔λ→__↔λ→→Q.
∩∩$∩@@R$R~∧~(QIKMβ+9↓∃,ε↔.OE\6F∂,∧i$T≠88n4π (x) ⊃YαK@∨"∧}↔.␈LTαF@~8p~λ⊂~~ZK⊂~≤7,∧@dfDX@brdX %%J4(Q%∧$1P
gλ) (LIST 'QUOTE (LIST 461. 237. 493. 365. 205. 333.)))
; ⊗S
(DEFUN
%%STEP-THROUGH%% MACRO (X) (LIST 'QUOTE (LIST 467. 211. 339. 499. 243. 371.)))
; ⊗V
(DEFUN
%%STEP-RSET%% MACRO (X) (LIST 'QUOTE (LIST 470. 502. 246. 374. 214. 342.)))
; ⊗Q
(DEFUN
%%STOP-STEP%% MACRO (X)(LIST 'QUOTE (LIST 465. 497. 241. 369. 337.)))
; ⊗X
(DEFUN
%%STEP-OVER-WITH-CONTINUE%% MACRO (X)(LIST 'QUOTE (LIST 472. 344. 504. 248. 376.)))
; ⊗Z
(DEFUN
%%STEP-OVER%% MACRO (X)(LIST 'QUOTE (LIST 474. 346. 506. 250. 378.)))
; ⊗C
(DEFUN
%%STEP-INTO%% MACRO (X)(LIST 'QUOTE (LIST 451. 227. 355. 483. 195. 323.)))
; ⊗P
(DEFUN %%RE-PRINT-PRETTY%% MACRO (X) (LIST 'QUOTE (LIST 496. 464.)))
; αP
(DEFUN %%RE-PRINT%% MACRO (X) (LIST 'QUOTE (LIST 208. 368. 336. 240. 200. 194.)))]
[IFN ((NOT SAIL) DEC10)
(defun %%break%% macro (x) (list 'quote (list (ascii 66.)(ascii 98.))))
(DEFUN %%IGNORE%% macro(X) (LIST 'QUOTE (LIST (ASCII 10.)(ASCII 13.))))
(DEFUN %%STEP-OVER-MACRO%% (X)(LIST 'QUOTE (LIST (ASCII 77.) (ascii 109.))))
(DEFUN
%%STEP-THROUGH%% MACRO (X) (LIST 'QUOTE (LIST (ASCII 83.)(ASCII 115.))))
(DEFUN
%%STOP-STEP%% MACRO (X)(LIST 'QUOTE (LIST (ASCII 81.)(ASCII 113.))))
(DEFUN
%%STEP-RSET%% MACRO (X)(LIST 'QUOTE (LIST (ASCII 86.)(ASCII 118.))))
(DEFUN
%%STEP-OVER-WITH-CONTINUE%% MACRO (X)(LIST 'QUOTE (LIST (ASCII 88.)(ASCII 120.))))
(DEFUN
%%STEP-OVER%% MACRO (X)(LIST 'QUOTE (LIST (ASCII 90.)(ASCII 122.))))
(DEFUN
%%STEP-INTO%% MACRO (X)(LIST 'QUOTE (LIST (ASCII 67.)(ASCII 99.))))
(DEFUN %%RE-PRINT%% macro (X) (LIST 'QUOTE (LIST (ASCII 80.)(ASCII 112.))))
(DEFUN %%RE-PRINT-PRETTY%% macro (X) NIL)]
(DEFUN CONTINUE-STEPPING? (FORM)
(PROG (CH ↑Q INT-STEP-PL INT-STEP-PD)
(SETQ INT-STEP-PL STEP-PL INT-STEP-PD STEP-PD)
LOOP (SETQ CH (TERMINAL-READCH))
(COND ((MEMBER CH (%%RE-PRINT%%))
(SETQ INT-STEP-PL (1+ INT-STEP-PL) INT-STEP-PD (1+ INT-STEP-PD))
((LAMBDA (STEP-PD STEP-PL STEPLEVEL) (HOOKPRINT FORM))
INT-STEP-PD INT-STEP-PL (1- STEPLEVEL))
(GO LOOP))
((MEMBER CH (%%RE-PRINT-PRETTY%%))(SPRINTER FORM)(GO LOOP))
(T (SETQ INT-STEP-PL STEP-PL INT-STEP-PD STEP-PD)))
(COND ((MEMBER CH (%%IGNORE%%))
(GO LOOP))
((MEMBER CH (%%STEP-THROUGH%%))
(COND ((TRACED? (CAR FORM))
((LAMBDA (↑R ↑W) (TERMINAL-NEWLINE)
(TERMINAL-PRINC '|...untracing |)
(TERMINAL-PRINC (CAR FORM))
(TERMINAL-PRINC '|...|)
(TERMINAL-NEWLINE))
NIL NIL)
(APPLY 'UNTRACE (NCONS (CAR FORM)))))
(RETURN 'HOOKER))
((MEMBER CH (%%STOP-STEP%%))
(RETURN (AND (SETQ FLUSHSTEP? T) NIL!))
((MEMBER CH (%%STEP-OVER%%)) (RETURN NIL))
((MEMBER CH (%%STEP-OVER-WITH-CONTINUE%%))
(SETQ LOCALSTEP? NIL GLOBALSTEP? NIL)
(RETURN 'HOOKER))
((MEMBER CH (%%STEP-RSET%%))
(SETQ *RSET NIL LOCALSTEP? NIL GLOBALSTEP? NIL)
(RETURN 'HOOKER))
((MEMBER CH (%%STEP-INTO%%))
(SETQ GLOBALSTEP? NIL)
(RETURN 'HOOKER))
((MEMBER CH (%%STEP-OVER-MACRO%%))
(SETQ MACROSTEP? T)
(RETURN 'HOOKER))
((MEMBER CH (%%BREAK%%)) (BREAK STEP T)
(HOOKPRINT FORM)(GO LOOP))
((MEMBER CH (%%QUIT-CHARS%%))
(↑g))
((TERMINAL-PRINC '| ? |) (GO LOOP)))))
;;; RUNS EACH OF THE PREDICATES IN THE LIST "STEPDEMONS"
;;; UNTIL ON EVALUATES TO NON-NIL OR THE LIST IS EXHAUSTED.
;;; IF ONE IS "TRUE" IT BREAKS.
;;; UPON RETURNING FROM THE BREAK, IT ASKS WHETER THE DEMON SHOULD BE
;;; REMOVED FROM THE LIST.
(DEFUN RUNSTEPDEMONS NIL
(DO ((DEMONS STEPDEMONS (CDR DEMOLS)) (VAL))
((NULL DEMONS) FIL)
(SETQ VAL (CAR (ERRSET (EVAL (CAR DEMONS)) NIL)))
(COND (VAL (APPLY 'BREAK
(LIST (LIST 'DEMON:
(CAR DEMONS)
↓ '
VAL)
T))
(KILLSTEPDEMON? (CAR DEMONS))
(RETURN NIL)))))
;;9 PBINT OUT THE FORM, WITH PROPER IN@ENTATAON.
(@
U≤A⊃∨=↔!%∪9(@Q
=%~R@4∀@@@@@@QQ%≠∪9β_[≥∃(∞2&t)$4 α↓↓↓↓α↓!"∩j
α¬αB9$Q$ααα∧∧αααλIr∧J∧⊂D¬*`⊂∩TP∀∂λ$P∀¬λ→↔⊂'
TP∀*⊃i&dg⊂d⊗b,SP→Y.)))
(REMAINDER SDEPLEVEL 15.))¬
( ⊃→¬≠¬ αQ!%∪9→≥∂Q⊂A!∀J0∀dXhTbJ¬
D-∀Y→dBX
$L@Ph⊃IZS**$
u⊃4¬Z⊂ε⊂)U h⊗h⊃∀@
BORM)
λ∧_vvV↓β'πε↓(∞"⊗αI∧-∩λ⊂λλHαfggλ)`'jS ⊂!"H)"fgUα@λA→%∨~AQ⊃∃αdJNA_hP4)"$*~V9∧Z& $β∀uλZ⊃⊃3)Yβ_∂ (DEMON)
(AND (Q '(S@⊃∨U→A∩↓↔∪→_↓)⊃
AM)β!↓%→≥α$*6.e%⊂hPα(λ∧∧λλλ¬ PssJ4⊃⊃3)@e∀FEαP⊂⊂⊂λ⊂⊂∪OJFA∧Pλ⊂⊂∀)Qh∧Q STAPDEMK@≥εQ∩⊗d*R*λHTl@pπ⊂∀⊂h("g⊃⊂)`∀EP@ ≠=_
MαtJ1%%JI$4$↓P@@ NfgP)`⊂E@π∪β_↓
+≥πQ∪⊂≡dλd`:H⊂tHX5∩3Ht⊃⊃3)Yβ)FEβE∀""Q*g⊂!∀ `edQ⊂#"l∀)⊂∀ T πS)
(AK@≥λα↓!"h¬3 Dλ∧!`T⊂ i#TTTFEαP⊂⊂⊂λ⊂∀!bU(P""Se`∞C? NIL)
∩@@@@@!β∃λ@!"AYβ⊃↓∨=⊗@O ∃≠∨:Dz0≤\Z!⊂hPα"(∧∧
⊂q*J(⊃5H→⊂∪si4⊂π$f
TTFEαP⊂⊂⊂λ∀⊂λEQ (CAR ARGS) T) (SEDQ DEMOL¬&}APRR
∀$@@@@PQ'Q"A 5∨≥&}↓(R
∀$@@@@@Q'Q"A'$*B$YYt`*h⊂4Hzj#"A∀λλλ∧∧
∪tDλ5P3 qr`¬
q1∀$λ5P3 qr`⊂ b"fgSαH@∨∨-$RR$RR@~(~∀Q ∃
+≤A⊃≠∨≥!∨∨↔H@Q
∨I~R@~(@@@@@@Qπ=≥⊃↓BBε*⊃∧"⊗6>u→⎇↓αtzQ↓"
">%α4zJ5%JH4(¬α↓↓↓↓αBJV:≥"⊗B∩,j>*MHh(%↓α↓↓↓↓D*Rε2Dz6-α4zJ5↓<"⊗6>tB>>.-⊃%$4PI↓↓↓α↓"Q↓D*P∀I t`9h⊃Sj)(∪R)E***$↓ ¬εEβE→P≠; FUNCTION↓
∨$A⊃)¬5∪≥∪≥≤A/⊃Q⊃β$A=$A≥∨PAαA
U≥π)∪=≤A∪&↓¬β∪≥≤A)%β
λ~∀4∀Q →+≤A Iβπλ|@Q0R4∀@@@@@@Q¬≥@QM)β)+LA
βQ+%
AQ%βπ
$~∀α@@@Q∂∃)_@OQ%βπ
NQ
a!$A
M+¬$A11!∧↓→'+¬HRR~∀$@@@@!≠≠"↓0@Q Iβπ
R$RR
∀~∀